#pragma once
#ifndef __gameconstants
#include "gameconstants.h"
#define __gameconstants
#endif
#include <ClanLib/display.h>
#include <vector>
#include "drawableobject.h"
#include "resourcemanager.h"
#include "gamemodel.h"
#include "enemy.h"

// grafikklasse die alles im window darstellt

class Graphics {
public:
	Graphics(CL_DisplayWindow* displayWindow);
	~Graphics(void);
	void draw();
	void addToDraw(CL_Sprite* sprite, int posX, int posY);

	void drawEndingScreen();
	void drawGameOverScreen();

private:
	CL_DisplayWindow* window;
	CL_GraphicContext gc;
	std::vector<DrawableObject>* sprites;

	ResourceManager* resourceManager;
	GameModel* gameModel;

	CL_Font* font;

	int valuesSizeX;
	int valuesSizeY;

	void drawLevelAndPlayer();
	void drawEnemies();
	void drawUserInterface();
	void drawBackground();
	void drawPlayerBoundingBox();

};
